Technical Field
The present description generally relates to electronic circuits comprising a non-volatile memory and, more particularly, circuits operating a flash memory. The present description relates more particularly to the detection and correction of errors in a non-volatile memory, more particularly in a flash memory.
Description of the Related Art
Flash memories are increasingly used in microcontrollers to store information in a non-volatile manner.
The storage of data in a flash memory is subject to various time constraints linked to the granularity of the operations performed, the writing and reading being carried out per byte, whereas the erasure is carried out per page.
Furthermore, as with any memory, it must be ensured that the storage is reliable in the long term and does not become unstable. The storage must therefore be associated with error correction mechanisms.
In some applications, there is a need to ensure that the transactions performed and stored meet an atomicity criterion. The atomicity of a transaction entails ensuring that data stored in a memory in fact have an operable state. This means ensuring that data in a non-volatile memory have either the state before the transaction or the state after the transaction concerned, but do not have an intermediate state. Error correction mechanisms based on error correction codes must therefore meet the atomicity criterion. Furthermore, the different metadata enabling atomicity management must also be covered by the error correction mechanism.